# ---
# title: 1636. Sort Array by Increasing Frequency
# id: problem1636
# author: Indigo
# date: 2021-01-26
# difficulty: Easy
# categories: Array, Sort
# link: <https://leetcode.com/problems/sort-array-by-increasing-frequency/description/>
# hidden: true
# ---
# 
# Given an array of integers `nums`, sort the array in **increasing** order
# based on the frequency of the values. If multiple values have the same
# frequency, sort them in **decreasing** order.
# 
# Return the _sorted array_.
# 
# 
# 
# **Example 1:**
# 
#     
#     
#     Input: nums = [1,1,2,2,2,3]
#     Output: [3,1,1,2,2,2]
#     Explanation: '3' has a frequency of 1, '1' has a frequency of 2, and '2' has a frequency of 3.
#     
# 
# **Example 2:**
# 
#     
#     
#     Input: nums = [2,3,1,3,2]
#     Output: [1,3,3,2,2]
#     Explanation: '2' and '3' both have a frequency of 2, so they are sorted in decreasing order.
#     
# 
# **Example 3:**
# 
#     
#     
#     Input: nums = [-1,1,-6,4,5,-6,1,4,1]
#     Output: [5,-1,4,4,-6,-6,1,1,1]
# 
# 
# 
# **Constraints:**
# 
#   * `1 <= nums.length <= 100`
#   * `-100 <= nums[i] <= 100`
# 
# 
## @lc code=start
using LeetCode

function frequency_sort(nums::Vector{Int})
    freq = counter(nums)
    sort!(nums, by = x -> (freq[x], -x))
end
## @lc code=end
